class User {
  // 对象的属性必须在一开始就明确指定
  readonly id: number; // 只读属性
  gender: "男" | "女" = "男"; // 给对象属性默认值
  pid?: string; // 可选属性 也可以写成 pid: string | undefined

  private publishNumber: number = 3; // 访问修饰符: 私有属性, 默认为public
  private curNumber: number = 0;

  // 不在顶层声明类型和在构造中声明的简写
  constructor(public name: string, public age: number) {
    this.id = Math.random();
  }

  publich(title: string) {
    if (this.curNumber < this.publishNumber) {
      console.log("当前发布一张文章" + title);
      this.curNumber++;
    } else {
      console.log("今日发布文章数量达到上限");
    }
  }
}

const u = new User("aa", 2);
u.publich("文章1");
u.publich("文章2");
u.publich("文章3");
u.publich("文章4");
u.gender = "女";

export {};
